If you’re reading this, it means I’ve left my previous company and started a new phase in my career.
During a technical sharing meeting, I realized that my technical philosophy differed from that of my superiors, the company, and possibly the entire industry. It wasn’t about right or wrong, no conflicts or contradictions—just differences.
I believe technology should solve technical problems, focusing more on trends and forms of technology. It’s not that I can’t make technology concrete; I just don’t believe “concrete” means depth, especially when linking “concrete” with human psychology (trust models). Concrete technology can solve specific problems and has value, but the scope is too limited. I won’t be satisfied with that.
For example, I think that routers between computers should only be responsible for forwarding network messages and ensuring they reach the target computer accurately. They shouldn’t be involved in the specific content of the messages. If it’s a transfer message, should the router freeze the sender’s funds to ensure the transaction is completed smoothly? That’s absurd.
This wasn’t the only reason, but it sparked the idea of looking elsewhere. The idea formed in an instant when my superior corrected my viewpoint. I fully acknowledged his correctness in technical matters, especially in the industry. But suddenly, I felt that everything was too boring. I couldn’t jump out of that circle.
Even if I don’t have the strength to achieve my ideals, it doesn’t prevent me from continuing to have them.
I always knew there was a dragon on the distant mountain, but now I see monsters at the foot of the mountain blocking the way up. The monster at the foot of the mountain is called Authority.
Last year, I also had thoughts of leaving because I was completely engaged in CRUD projects with no technical content. I couldn’t continue like that. This year’s reasons are similar.
The reason I didn’t leave wasn’t due to work experience or skills. When interviewers asked me some very boring questions, I suddenly felt uninterested in job hunting. Changing workplaces wouldn’t solve my problems. I shouldn’t expect to improve my technical skills based on the company I work for. Besides, I hadn’t figured out what I wanted from a new job. Coupled with the impact of the environment at that time, it was inconvenient to interview, and my superior later gave me a lot of room to grow, so I stayed quietly.
Last year, there were salary cuts, project failures, and high turnover in the department. Some colleagues asked why I didn’t switch jobs. I didn’t care much about salary, especially when I was “busy” with other things, personal things, and had no mind to focus on work issues. This year is the same—not a matter of wanting or not wanting to leave, but not thinking about it. There were too many personal problems, and I couldn’t think about it.
Is this a good time now? I don’t know, but at least I have some free time. You might imagine how painful it was to start watching raw English videos and TV shows, unable to understand anything. For a while, I lost interest in American TV shows because I couldn’t understand a thing.
Regarding personal abilities, there’s a simple logic. If my abilities are sufficient, I will find better job opportunities. If they aren’t, I must leave, regardless of the cost, even if I can’t earn money, pay rent, or survive in this city. I must go. If only my current company recognizes me, will I just survive here? In the current company, I’m “considered” a core member, but whether one or two companies recognize me doesn’t mean much. I’ve never expected to receive more compensation than my abilities warrant.
In these two years, I haven’t been idle. Although I didn’t spend time brushing up on algorithms or basic knowledge, I wasn’t idle. I chose to improve acceleration rather than speed. I chose to forge a better axe rather than cutting wood with a blunt one. I spent time making myself a better human being, not just a better coder.
When there were no clear work arrangements, was I slacking off? Yes, but it was a painful slack. I constantly needed to think about what to do next. What valuable work-related things could I do? Every morning when I woke up and every evening after work, I thought about what I did today and what I would do tomorrow. I did my best, but there was nothing I could do. At work, I have a clear conscience (mostly). It wasn’t intentional laziness but that I couldn’t think of anything to do, especially without a superior. I truly wanted to do something.
Regarding interviews, I don’t want to prepare anything deliberately. Necessary reviews and organizing experiences are essential, but I shouldn’t focus on interview questions. Technical abilities can’t improve overnight. Things that can be learned in a short time can be learned anywhere, whether in the current company or the future one. What I need might be a probation period. If my abilities don’t match, I’ll leave voluntarily (of course, I know that’s not how the real world works). I hope to complete this job change under less pressure. If a sudden learning plan starts during job hunting, I might lose interest in job hunting.
I suddenly remember my university days. The night before exams, the classroom was locked, and everyone stayed in the dorm, studying intensely. The campus and playground were empty. Only I wandered outside or slept in the dorm. What I needed to know was already in my head; what I didn’t know wouldn’t be meaningful to learn last minute.
If I face significant obstacles in job hunting this time, I will validate a simple truth with my experience: two or three years of work experience is far less important than two or three years of academic qualifications. I believe the school is full of formalities and various psychological states that can’t teach me truly useful knowledge.
(In fact, there are quite a few interview opportunities. Failing to seize them is my own fault.)
I haven’t mentioned these things in the blog before because they have no “growth” significance for me. Although they entangled me for almost a year, they are indeed meaningless and not worth mentioning. Now I recall them as a record to prevent complete forgetfulness in the future.
The department was divided into two small groups: the application layer group and the underlying layer group, referred to as Group A and Group B. I belonged to Group A. The department didn’t have clear authority divisions, and I had no intention of creating factions.
Last year, a project required me (a Group A member) and the Group B leader to work together. From my standpoint, I was just a coder. Due to my experience in Group A and a certain degree of trust in the Group A leader, I thought, “After all, he’s the Group B leader, and I don’t understand the project well, so I’ll just do what he says.”
But the actual cooperation was frustrating. His logical thinking wasn’t clear enough. One moment, he wanted to test scenario one, then scenario two, then back to scenario one. Then he suddenly had an idea and wanted to test both scenarios. We were testing a distributed system with 4-6 machines, each running 2-3 programs. Switching scenarios required changing configurations, restarting programs, clearing logs, recording machine states, recording results, analyzing results, all under remote desktop with network delays that could drive anyone crazy. This was bearable, but I didn’t think much of it, just found the work tedious and resisted it a bit.
The main issue was his lack of trust in me. Reflecting on it later, I realized that all his conclusions from his instructions were ones I had already known. His consumption of my time didn’t advance anything. I had told him the conclusions beforehand, and he said, “We need to run it and see the results.” I wasn’t confident enough at the time, given his title, and hoped he might find something different or more useful, so I listened to him. But his tasks only verified my conclusions. I began to doubt his abilities.
A few days later, he asked me to re-verify the best previous result. After some operations, I wanted to directly state the conclusion, but he insisted I do it again and show him the process and result. I got angry and asked, “What’s the purpose of this test? Just to show you the result?” I thought, “Am I just your assistant? Is my job’s value just to show you results and make you believe me? In this matter, are we collaborators or subordinates? Why should I do this? Are you overestimating yourself or underestimating me? If you were truly capable, it would be different, but you’re not.”
My solution was to tell him to contact my leader (group leader or department head) for coordination in the future, not directly command me. This meant asking my leader to filter out meaningless tasks. I couldn’t directly refuse him from my position. If my leader deemed a task meaningful, I had no reason to refuse. Additionally, if my leader believed my job should be assisting him, I’d resign on the spot.
After the first stage, I occasionally worried that if one day the leader required or arranged for me to transfer to their group, things would get chaotic because I didn’t trust his (Group B leader) abilities. I wouldn’t trust him with my work.
Then something magical happened. The Group B leader left, and a Group B member became the leader, and I transferred to Group B.
Is this a joke? Even if a Group B member became the leader, I didn’t respect the original leader either. Even the previous Group B leader, the department technical head (who left), I also clashed with from the beginning.
I indeed didn’t respect him. Someone suddenly becoming my leader, with the authority to assign my work—I needed to test his